home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_gnu / adainc / i-cobol.ads < prev    next >
Text File  |  1996-01-30  |  22KB  |  449 lines

  1. ------------------------------------------------------------------------------
  2. --                                                                          --
  3. --                         GNAT COMPILER COMPONENTS                         --
  4. --                                                                          --
  5. --                      I N T E R F A C E S . C O B O L                     --
  6. --                                                                          --
  7. --                                 S p e c                                  --
  8. --                                                                          --
  9. --                            $Revision: 1.6 $                              --
  10. --                                                                          --
  11. -- This specification is adapted from the Ada Reference Manual for use with --
  12. -- GNAT.  In accordance with the copyright of that document, you can freely --
  13. -- copy and modify this specification,  provided that if you redistribute a --
  14. -- modified version,  any changes that you have made are clearly indicated. --
  15. --                                                                          --
  16. ------------------------------------------------------------------------------
  17.  
  18. package Interfaces.COBOL is
  19.  
  20.    ------------------------------------------------------------
  21.    -- Types And Operations For Internal Data Representations --
  22.    ------------------------------------------------------------
  23.  
  24.    type Floating      is new Float;
  25.    type Long_Floating is new Long_Float;
  26.  
  27.    type Binary        is new Integer;
  28.    type Long_Binary   is new Long_Long_Integer;
  29.  
  30.    Max_Digits_Binary      : constant := 9;
  31.    Max_Digits_Long_Binary : constant := 18;
  32.  
  33.    type Decimal_Element  is mod 16;
  34.    type Packed_Decimal is array (Positive range <>) of Decimal_Element;
  35.    pragma Pack (Packed_Decimal);
  36.  
  37.    type COBOL_Character is new Character;
  38.  
  39.    Ada_To_COBOL : array (Standard.Character) of COBOL_Character := (
  40.      COBOL_Character'Val (000), COBOL_Character'Val (001),
  41.      COBOL_Character'Val (002), COBOL_Character'Val (003),
  42.      COBOL_Character'Val (004), COBOL_Character'Val (005),
  43.      COBOL_Character'Val (006), COBOL_Character'Val (007),
  44.      COBOL_Character'Val (008), COBOL_Character'Val (009),
  45.      COBOL_Character'Val (010), COBOL_Character'Val (011),
  46.      COBOL_Character'Val (012), COBOL_Character'Val (013),
  47.      COBOL_Character'Val (014), COBOL_Character'Val (015),
  48.      COBOL_Character'Val (016), COBOL_Character'Val (017),
  49.      COBOL_Character'Val (018), COBOL_Character'Val (019),
  50.      COBOL_Character'Val (020), COBOL_Character'Val (021),
  51.      COBOL_Character'Val (022), COBOL_Character'Val (023),
  52.      COBOL_Character'Val (024), COBOL_Character'Val (025),
  53.      COBOL_Character'Val (026), COBOL_Character'Val (027),
  54.      COBOL_Character'Val (028), COBOL_Character'Val (029),
  55.      COBOL_Character'Val (030), COBOL_Character'Val (031),
  56.      COBOL_Character'Val (032), COBOL_Character'Val (033),
  57.      COBOL_Character'Val (034), COBOL_Character'Val (035),
  58.      COBOL_Character'Val (036), COBOL_Character'Val (037),
  59.      COBOL_Character'Val (038), COBOL_Character'Val (039),
  60.      COBOL_Character'Val (040), COBOL_Character'Val (041),
  61.      COBOL_Character'Val (042), COBOL_Character'Val (043),
  62.      COBOL_Character'Val (044), COBOL_Character'Val (045),
  63.      COBOL_Character'Val (046), COBOL_Character'Val (047),
  64.      COBOL_Character'Val (048), COBOL_Character'Val (049),
  65.      COBOL_Character'Val (050), COBOL_Character'Val (051),
  66.      COBOL_Character'Val (052), COBOL_Character'Val (053),
  67.      COBOL_Character'Val (054), COBOL_Character'Val (055),
  68.      COBOL_Character'Val (056), COBOL_Character'Val (057),
  69.      COBOL_Character'Val (058), COBOL_Character'Val (059),
  70.      COBOL_Character'Val (060), COBOL_Character'Val (061),
  71.      COBOL_Character'Val (062), COBOL_Character'Val (063),
  72.      COBOL_Character'Val (064), COBOL_Character'Val (065),
  73.      COBOL_Character'Val (066), COBOL_Character'Val (067),
  74.      COBOL_Character'Val (068), COBOL_Character'Val (069),
  75.      COBOL_Character'Val (070), COBOL_Character'Val (071),
  76.      COBOL_Character'Val (072), COBOL_Character'Val (073),
  77.      COBOL_Character'Val (074), COBOL_Character'Val (075),
  78.      COBOL_Character'Val (076), COBOL_Character'Val (077),
  79.      COBOL_Character'Val (078), COBOL_Character'Val (079),
  80.      COBOL_Character'Val (080), COBOL_Character'Val (081),
  81.      COBOL_Character'Val (082), COBOL_Character'Val (083),
  82.      COBOL_Character'Val (084), COBOL_Character'Val (085),
  83.      COBOL_Character'Val (086), COBOL_Character'Val (087),
  84.      COBOL_Character'Val (088), COBOL_Character'Val (089),
  85.      COBOL_Character'Val (090), COBOL_Character'Val (091),
  86.      COBOL_Character'Val (092), COBOL_Character'Val (093),
  87.      COBOL_Character'Val (094), COBOL_Character'Val (095),
  88.      COBOL_Character'Val (096), COBOL_Character'Val (097),
  89.      COBOL_Character'Val (098), COBOL_Character'Val (099),
  90.      COBOL_Character'Val (100), COBOL_Character'Val (101),
  91.      COBOL_Character'Val (102), COBOL_Character'Val (103),
  92.      COBOL_Character'Val (104), COBOL_Character'Val (105),
  93.      COBOL_Character'Val (106), COBOL_Character'Val (107),
  94.      COBOL_Character'Val (108), COBOL_Character'Val (109),
  95.      COBOL_Character'Val (110), COBOL_Character'Val (111),
  96.      COBOL_Character'Val (112), COBOL_Character'Val (113),
  97.      COBOL_Character'Val (114), COBOL_Character'Val (115),
  98.      COBOL_Character'Val (116), COBOL_Character'Val (117),
  99.      COBOL_Character'Val (118), COBOL_Character'Val (119),
  100.      COBOL_Character'Val (120), COBOL_Character'Val (121),
  101.      COBOL_Character'Val (122), COBOL_Character'Val (123),
  102.      COBOL_Character'Val (124), COBOL_Character'Val (125),
  103.      COBOL_Character'Val (126), COBOL_Character'Val (127),
  104.      COBOL_Character'Val (128), COBOL_Character'Val (129),
  105.      COBOL_Character'Val (130), COBOL_Character'Val (131),
  106.      COBOL_Character'Val (132), COBOL_Character'Val (133),
  107.      COBOL_Character'Val (134), COBOL_Character'Val (135),
  108.      COBOL_Character'Val (136), COBOL_Character'Val (137),
  109.      COBOL_Character'Val (138), COBOL_Character'Val (139),
  110.      COBOL_Character'Val (140), COBOL_Character'Val (141),
  111.      COBOL_Character'Val (142), COBOL_Character'Val (143),
  112.      COBOL_Character'Val (144), COBOL_Character'Val (145),
  113.      COBOL_Character'Val (146), COBOL_Character'Val (147),
  114.      COBOL_Character'Val (148), COBOL_Character'Val (149),
  115.      COBOL_Character'Val (150), COBOL_Character'Val (151),
  116.      COBOL_Character'Val (152), COBOL_Character'Val (153),
  117.      COBOL_Character'Val (154), COBOL_Character'Val (155),
  118.      COBOL_Character'Val (156), COBOL_Character'Val (157),
  119.      COBOL_Character'Val (158), COBOL_Character'Val (159),
  120.      COBOL_Character'Val (160), COBOL_Character'Val (161),
  121.      COBOL_Character'Val (162), COBOL_Character'Val (163),
  122.      COBOL_Character'Val (164), COBOL_Character'Val (165),
  123.      COBOL_Character'Val (166), COBOL_Character'Val (167),
  124.      COBOL_Character'Val (168), COBOL_Character'Val (169),
  125.      COBOL_Character'Val (170), COBOL_Character'Val (171),
  126.      COBOL_Character'Val (172), COBOL_Character'Val (173),
  127.      COBOL_Character'Val (174), COBOL_Character'Val (175),
  128.      COBOL_Character'Val (176), COBOL_Character'Val (177),
  129.      COBOL_Character'Val (178), COBOL_Character'Val (179),
  130.      COBOL_Character'Val (180), COBOL_Character'Val (181),
  131.      COBOL_Character'Val (182), COBOL_Character'Val (183),
  132.      COBOL_Character'Val (184), COBOL_Character'Val (185),
  133.      COBOL_Character'Val (186), COBOL_Character'Val (187),
  134.      COBOL_Character'Val (188), COBOL_Character'Val (189),
  135.      COBOL_Character'Val (190), COBOL_Character'Val (191),
  136.      COBOL_Character'Val (192), COBOL_Character'Val (193),
  137.      COBOL_Character'Val (194), COBOL_Character'Val (195),
  138.      COBOL_Character'Val (196), COBOL_Character'Val (197),
  139.      COBOL_Character'Val (198), COBOL_Character'Val (199),
  140.      COBOL_Character'Val (200), COBOL_Character'Val (201),
  141.      COBOL_Character'Val (202), COBOL_Character'Val (203),
  142.      COBOL_Character'Val (204), COBOL_Character'Val (205),
  143.      COBOL_Character'Val (206), COBOL_Character'Val (207),
  144.      COBOL_Character'Val (208), COBOL_Character'Val (209),
  145.      COBOL_Character'Val (210), COBOL_Character'Val (211),
  146.      COBOL_Character'Val (212), COBOL_Character'Val (213),
  147.      COBOL_Character'Val (214), COBOL_Character'Val (215),
  148.      COBOL_Character'Val (216), COBOL_Character'Val (217),
  149.      COBOL_Character'Val (218), COBOL_Character'Val (219),
  150.      COBOL_Character'Val (220), COBOL_Character'Val (221),
  151.      COBOL_Character'Val (222), COBOL_Character'Val (223),
  152.      COBOL_Character'Val (224), COBOL_Character'Val (225),
  153.      COBOL_Character'Val (226), COBOL_Character'Val (227),
  154.      COBOL_Character'Val (228), COBOL_Character'Val (229),
  155.      COBOL_Character'Val (230), COBOL_Character'Val (231),
  156.      COBOL_Character'Val (232), COBOL_Character'Val (233),
  157.      COBOL_Character'Val (234), COBOL_Character'Val (235),
  158.      COBOL_Character'Val (236), COBOL_Character'Val (237),
  159.      COBOL_Character'Val (238), COBOL_Character'Val (239),
  160.      COBOL_Character'Val (240), COBOL_Character'Val (241),
  161.      COBOL_Character'Val (242), COBOL_Character'Val (243),
  162.      COBOL_Character'Val (244), COBOL_Character'Val (245),
  163.      COBOL_Character'Val (246), COBOL_Character'Val (247),
  164.      COBOL_Character'Val (248), COBOL_Character'Val (249),
  165.      COBOL_Character'Val (250), COBOL_Character'Val (251),
  166.      COBOL_Character'Val (252), COBOL_Character'Val (253),
  167.      COBOL_Character'Val (254), COBOL_Character'Val (255));
  168.  
  169.    COBOL_To_Ada : array (COBOL_Character) of Standard.Character := (
  170.      Standard.Character'Val (000), Standard.Character'Val (001),
  171.      Standard.Character'Val (002), Standard.Character'Val (003),
  172.      Standard.Character'Val (004), Standard.Character'Val (005),
  173.      Standard.Character'Val (006), Standard.Character'Val (007),
  174.      Standard.Character'Val (008), Standard.Character'Val (009),
  175.      Standard.Character'Val (010), Standard.Character'Val (011),
  176.      Standard.Character'Val (012), Standard.Character'Val (013),
  177.      Standard.Character'Val (014), Standard.Character'Val (015),
  178.      Standard.Character'Val (016), Standard.Character'Val (017),
  179.      Standard.Character'Val (018), Standard.Character'Val (019),
  180.      Standard.Character'Val (020), Standard.Character'Val (021),
  181.      Standard.Character'Val (022), Standard.Character'Val (023),
  182.      Standard.Character'Val (024), Standard.Character'Val (025),
  183.      Standard.Character'Val (026), Standard.Character'Val (027),
  184.      Standard.Character'Val (028), Standard.Character'Val (029),
  185.      Standard.Character'Val (030), Standard.Character'Val (031),
  186.      Standard.Character'Val (032), Standard.Character'Val (033),
  187.      Standard.Character'Val (034), Standard.Character'Val (035),
  188.      Standard.Character'Val (036), Standard.Character'Val (037),
  189.      Standard.Character'Val (038), Standard.Character'Val (039),
  190.      Standard.Character'Val (040), Standard.Character'Val (041),
  191.      Standard.Character'Val (042), Standard.Character'Val (043),
  192.      Standard.Character'Val (044), Standard.Character'Val (045),
  193.      Standard.Character'Val (046), Standard.Character'Val (047),
  194.      Standard.Character'Val (048), Standard.Character'Val (049),
  195.      Standard.Character'Val (050), Standard.Character'Val (051),
  196.      Standard.Character'Val (052), Standard.Character'Val (053),
  197.      Standard.Character'Val (054), Standard.Character'Val (055),
  198.      Standard.Character'Val (056), Standard.Character'Val (057),
  199.      Standard.Character'Val (058), Standard.Character'Val (059),
  200.      Standard.Character'Val (060), Standard.Character'Val (061),
  201.      Standard.Character'Val (062), Standard.Character'Val (063),
  202.      Standard.Character'Val (064), Standard.Character'Val (065),
  203.      Standard.Character'Val (066), Standard.Character'Val (067),
  204.      Standard.Character'Val (068), Standard.Character'Val (069),
  205.      Standard.Character'Val (070), Standard.Character'Val (071),
  206.      Standard.Character'Val (072), Standard.Character'Val (073),
  207.      Standard.Character'Val (074), Standard.Character'Val (075),
  208.      Standard.Character'Val (076), Standard.Character'Val (077),
  209.      Standard.Character'Val (078), Standard.Character'Val (079),
  210.      Standard.Character'Val (080), Standard.Character'Val (081),
  211.      Standard.Character'Val (082), Standard.Character'Val (083),
  212.      Standard.Character'Val (084), Standard.Character'Val (085),
  213.      Standard.Character'Val (086), Standard.Character'Val (087),
  214.      Standard.Character'Val (088), Standard.Character'Val (089),
  215.      Standard.Character'Val (090), Standard.Character'Val (091),
  216.      Standard.Character'Val (092), Standard.Character'Val (093),
  217.      Standard.Character'Val (094), Standard.Character'Val (095),
  218.      Standard.Character'Val (096), Standard.Character'Val (097),
  219.      Standard.Character'Val (098), Standard.Character'Val (099),
  220.      Standard.Character'Val (100), Standard.Character'Val (101),
  221.      Standard.Character'Val (102), Standard.Character'Val (103),
  222.      Standard.Character'Val (104), Standard.Character'Val (105),
  223.      Standard.Character'Val (106), Standard.Character'Val (107),
  224.      Standard.Character'Val (108), Standard.Character'Val (109),
  225.      Standard.Character'Val (110), Standard.Character'Val (111),
  226.      Standard.Character'Val (112), Standard.Character'Val (113),
  227.      Standard.Character'Val (114), Standard.Character'Val (115),
  228.      Standard.Character'Val (116), Standard.Character'Val (117),
  229.      Standard.Character'Val (118), Standard.Character'Val (119),
  230.      Standard.Character'Val (120), Standard.Character'Val (121),
  231.      Standard.Character'Val (122), Standard.Character'Val (123),
  232.      Standard.Character'Val (124), Standard.Character'Val (125),
  233.      Standard.Character'Val (126), Standard.Character'Val (127),
  234.      Standard.Character'Val (128), Standard.Character'Val (129),
  235.      Standard.Character'Val (130), Standard.Character'Val (131),
  236.      Standard.Character'Val (132), Standard.Character'Val (133),
  237.      Standard.Character'Val (134), Standard.Character'Val (135),
  238.      Standard.Character'Val (136), Standard.Character'Val (137),
  239.      Standard.Character'Val (138), Standard.Character'Val (139),
  240.      Standard.Character'Val (140), Standard.Character'Val (141),
  241.      Standard.Character'Val (142), Standard.Character'Val (143),
  242.      Standard.Character'Val (144), Standard.Character'Val (145),
  243.      Standard.Character'Val (146), Standard.Character'Val (147),
  244.      Standard.Character'Val (148), Standard.Character'Val (149),
  245.      Standard.Character'Val (150), Standard.Character'Val (151),
  246.      Standard.Character'Val (152), Standard.Character'Val (153),
  247.      Standard.Character'Val (154), Standard.Character'Val (155),
  248.      Standard.Character'Val (156), Standard.Character'Val (157),
  249.      Standard.Character'Val (158), Standard.Character'Val (159),
  250.      Standard.Character'Val (160), Standard.Character'Val (161),
  251.      Standard.Character'Val (162), Standard.Character'Val (163),
  252.      Standard.Character'Val (164), Standard.Character'Val (165),
  253.      Standard.Character'Val (166), Standard.Character'Val (167),
  254.      Standard.Character'Val (168), Standard.Character'Val (169),
  255.      Standard.Character'Val (170), Standard.Character'Val (171),
  256.      Standard.Character'Val (172), Standard.Character'Val (173),
  257.      Standard.Character'Val (174), Standard.Character'Val (175),
  258.      Standard.Character'Val (176), Standard.Character'Val (177),
  259.      Standard.Character'Val (178), Standard.Character'Val (179),
  260.      Standard.Character'Val (180), Standard.Character'Val (181),
  261.      Standard.Character'Val (182), Standard.Character'Val (183),
  262.      Standard.Character'Val (184), Standard.Character'Val (185),
  263.      Standard.Character'Val (186), Standard.Character'Val (187),
  264.      Standard.Character'Val (188), Standard.Character'Val (189),
  265.      Standard.Character'Val (190), Standard.Character'Val (191),
  266.      Standard.Character'Val (192), Standard.Character'Val (193),
  267.      Standard.Character'Val (194), Standard.Character'Val (195),
  268.      Standard.Character'Val (196), Standard.Character'Val (197),
  269.      Standard.Character'Val (198), Standard.Character'Val (199),
  270.      Standard.Character'Val (200), Standard.Character'Val (201),
  271.      Standard.Character'Val (202), Standard.Character'Val (203),
  272.      Standard.Character'Val (204), Standard.Character'Val (205),
  273.      Standard.Character'Val (206), Standard.Character'Val (207),
  274.      Standard.Character'Val (208), Standard.Character'Val (209),
  275.      Standard.Character'Val (210), Standard.Character'Val (211),
  276.      Standard.Character'Val (212), Standard.Character'Val (213),
  277.      Standard.Character'Val (214), Standard.Character'Val (215),
  278.      Standard.Character'Val (216), Standard.Character'Val (217),
  279.      Standard.Character'Val (218), Standard.Character'Val (219),
  280.      Standard.Character'Val (220), Standard.Character'Val (221),
  281.      Standard.Character'Val (222), Standard.Character'Val (223),
  282.      Standard.Character'Val (224), Standard.Character'Val (225),
  283.      Standard.Character'Val (226), Standard.Character'Val (227),
  284.      Standard.Character'Val (228), Standard.Character'Val (229),
  285.      Standard.Character'Val (230), Standard.Character'Val (231),
  286.      Standard.Character'Val (232), Standard.Character'Val (233),
  287.      Standard.Character'Val (234), Standard.Character'Val (235),
  288.      Standard.Character'Val (236), Standard.Character'Val (237),
  289.      Standard.Character'Val (238), Standard.Character'Val (239),
  290.      Standard.Character'Val (240), Standard.Character'Val (241),
  291.      Standard.Character'Val (242), Standard.Character'Val (243),
  292.      Standard.Character'Val (244), Standard.Character'Val (245),
  293.      Standard.Character'Val (246), Standard.Character'Val (247),
  294.      Standard.Character'Val (248), Standard.Character'Val (249),
  295.      Standard.Character'Val (250), Standard.Character'Val (251),
  296.      Standard.Character'Val (252), Standard.Character'Val (253),
  297.      Standard.Character'Val (254), Standard.Character'Val (255));
  298.  
  299.    type Alphanumeric is array (Positive range <>) of COBOL_Character;
  300.    pragma Pack (Alphanumeric);
  301.  
  302.    function To_COBOL (Item : in String) return Alphanumeric;
  303.    function To_Ada   (Item : in Alphanumeric) return String;
  304.  
  305.    procedure To_COBOL
  306.      (Item   : in String;
  307.       Target : out Alphanumeric;
  308.       Last   : out Natural);
  309.  
  310.    procedure To_Ada
  311.      (Item   : in Alphanumeric;
  312.       Target : out String;
  313.       Last   : out Natural);
  314.  
  315.    type Numeric is array (Positive range <>) of COBOL_Character;
  316.    pragma Pack (Numeric);
  317.  
  318.    --------------------------------------------
  319.    -- Formats For COBOL Data Representations --
  320.    --------------------------------------------
  321.  
  322.    type Display_Format is private;
  323.  
  324.    Unsigned             : constant Display_Format;
  325.    Leading_Separate     : constant Display_Format;
  326.    Trailing_Separate    : constant Display_Format;
  327.    Leading_Nonseparate  : constant Display_Format;
  328.    Trailing_Nonseparate : constant Display_Format;
  329.  
  330.    type Binary_Format is private;
  331.  
  332.    High_Order_First  : constant Binary_Format;
  333.    Low_Order_First   : constant Binary_Format;
  334.    Native_Binary     : constant Binary_Format;
  335.  
  336.    type Packed_Format is private;
  337.  
  338.    Packed_Unsigned   : constant Packed_Format;
  339.    Packed_Signed     : constant Packed_Format;
  340.  
  341.    ------------------------------------------------------------
  342.    -- Types For External Representation Of COBOL Binary Data --
  343.    ------------------------------------------------------------
  344.  
  345.    type Byte is mod 2 ** COBOL_Character'Size;
  346.    type Byte_Array is array (Positive range <>) of Byte;
  347.    pragma Pack (Byte_Array);
  348.  
  349.    Conversion_Error : exception;
  350.  
  351.    generic
  352.       type Num is delta <> digits <>;
  353.  
  354.    package Decimal_Conversions is
  355.  
  356.       --  Display Formats: data values are represented as Numeric
  357.  
  358.       function Valid
  359.         (Item   : in Numeric;
  360.          Format : in Display_Format)
  361.          return   Boolean;
  362.  
  363.       function Length
  364.         (Format : in Display_Format)
  365.          return   Natural;
  366.  
  367.       function To_Decimal
  368.         (Item   : in Numeric;
  369.          Format : in Display_Format)
  370.          return   Num;
  371.  
  372.       function To_Display
  373.         (Item   : in Num;
  374.          Format : in Display_Format)
  375.          return   Numeric;
  376.  
  377.       --  Packed Formats: data values are represented as Packed_Decimal
  378.  
  379.       function Valid
  380.         (Item   : in Packed_Decimal;
  381.          Format : in Display_Format)
  382.          return   Boolean;
  383.  
  384.       function Length
  385.         (Format : in Packed_Format)
  386.          return   Natural;
  387.  
  388.       function To_Decimal
  389.         (Item   : in Packed_Decimal;
  390.          Format : in Packed_Format)
  391.          return   Num;
  392.  
  393.       function To_Packed
  394.         (Item   : in Num;
  395.          Format : in Packed_Format)
  396.          return   Packed_Decimal;
  397.  
  398.       --  Binary Formats: external data values are represented as Byte_Array
  399.  
  400.       function Valid
  401.         (Item   : in Byte_Array;
  402.          Format : in Binary_Format)
  403.          return   Boolean;
  404.  
  405.       function Length
  406.         (Format : in Binary_Format)
  407.          return   Natural;
  408.  
  409.       function To_Decimal
  410.         (Item   : in Byte_Array;
  411.          Format : in Binary_Format) return Num;
  412.  
  413.       function To_Comp
  414.         (Item   : in Num;
  415.          Format : in Binary_Format)
  416.          return   Byte_Array;
  417.  
  418.       --  Internal Binary formats: data values are of type Binary/Long_Binary
  419.  
  420.       function To_Decimal (Item : in Binary)      return Num;
  421.       function To_Decimal (Item : in Long_Binary) return Num;
  422.  
  423.       function To_Binary      (Item : in Num)  return Binary;
  424.       function To_Long_Binary (Item : in Num)  return Long_Binary;
  425.  
  426.    end Decimal_Conversions;
  427.  
  428. private
  429.    type Display_Format is (U, LS, TS, LN, TN);
  430.  
  431.    Unsigned             : constant Display_Format := U;
  432.    Leading_Separate     : constant Display_Format := LS;
  433.    Trailing_Separate    : constant Display_Format := TS;
  434.    Leading_Nonseparate  : constant Display_Format := LN;
  435.    Trailing_Nonseparate : constant Display_Format := TN;
  436.  
  437.    type Binary_Format is (H, L, N);
  438.  
  439.    High_Order_First  : constant Binary_Format := H;
  440.    Low_Order_First   : constant Binary_Format := L;
  441.    Native_Binary     : constant Binary_Format := N;
  442.  
  443.    type Packed_Format is (U, S);
  444.  
  445.    Packed_Unsigned   : constant Packed_Format := U;
  446.    Packed_Signed     : constant Packed_Format := S;
  447.  
  448. end Interfaces.COBOL;
  449.